#coding=utf-
#引入模块和模块中的函数
from flask import Flask,render_template,request
import plotly.express as px
import pandas as pd
import numpy as np
from pyecharts import options as opts
from pyecharts.charts import Geo
from pyecharts.globals import ChartType, SymbolType
#from pyecharts import  SymbolType,ThemeType # .globals   ChartType,
# from pyecharts import Bar,Line,Map,Timeline,Page, Pie  #,Tab
# from prettytable import PrettyTable
# from pyecharts import Faker  #.faker
# from pyecharts import options as opts
# import tkinter as tk  # 使用Tkinter前需要先导入
# import tkinter.messagebox
import pickle
import csv



app = Flask(__name__)

#生成吸烟致癌症死亡率和癌症类型的两个图的后端代码
@app.route('/')
def hello_world():
    with open("html_photos/深圳区域停车场数量气泡地图.html", encoding="utf8", mode="r") as f1:  # 打开CSV文件，f1作为文件流
        park_all_1 = "".join(f1.readlines())  # f1.readlines()读取f1的数据，并且转化为字符串
        #interactive_controls = ['世界癌症死亡人数']  # 绑定前端页面的按钮以实现Python页面与前端页面交互
        park_title = '深圳市停车场分布气泡图'  # 网页标题
    with open("html_photos/深圳停车场分布散点图.html", encoding="utf8", mode="r") as f1:  # 打开CSV文件，f1作为文件流
        park_all_2 = "".join(f1.readlines())  # f1.readlines()读取f1的数据，并且转化为字符串
        #interactive_controls = ['世界癌症死亡人数']  # 绑定前端页面的按钮以实现Python页面与前端页面交互
        # park_title_pao = '深圳市停车场分布散点地图'
    with open("html_photos/深圳酒店地图气泡图.html", encoding="utf8", mode="r") as f1:  # 打开CSV文件，f1作为文件流
        hotel_point = "".join(f1.readlines())  # f1.readlines()读取f1的数据，并且转化为字符串
        # interactive_controls = ['世界癌症死亡人数']  # 绑定前端页面的按钮以实现Python页面与前端页面交互
        hotel_point_title = '深圳酒店分布气泡图'
    with open("html_photos/深圳市酒店分布散点图.html", encoding="utf8", mode="r") as f1:  # 打开CSV文件，f1作为文件流
        hotel_dot = "".join(f1.readlines())  # f1.readlines()读取f1的数据，并且转化为字符串
        # interactive_controls = ['世界癌症死亡人数']  # 绑定前端页面的按钮以实现Python页面与前端页面交互
        #hotel_dot_title = '深圳市不同区域酒店气泡图'
    with open("html_photos/深圳市景点分布散点图.html", encoding="utf8", mode="r") as f1:  # 打开CSV文件，f1作为文件流
        beauty_dot = "".join(f1.readlines())  # f1.readlines()读取f1的数据，并且转化为字符串
        # interactive_controls = ['世界癌症死亡人数']  # 绑定前端页面的按钮以实现Python页面与前端页面交互
        # beauty_dot_title = '深圳景点分布地图'
    with open("html_photos/深圳不同区域不同类型景点数量对比.html", encoding="gbk", mode="r") as f1:  # 打开CSV文件，f1作为文件流
        different_beauty = "".join(f1.readlines())  # f1.readlines()读取f1的数据，并且转化为字符串
        # interactive_controls = ['世界癌症死亡人数']  # 绑定前端页面的按钮以实现Python页面与前端页面交互
        # different_beauty_title = '深圳景点分布地图'
    with open("html_photos/不同区域停车场与美食与酒店与景点数量对比.html", encoding="gbk", mode="r") as f1:  # 打开CSV文件，f1作为文件流
        park_food = "".join(f1.readlines())  # f1.readlines()读取f1的数据，并且转化为字符串
        # interactive_controls = ['世界癌症死亡人数']  # 绑定前端页面的按钮以实现Python页面与前端页面交互
        # different_beauty_title = '深圳景点分布地图'
    with open("html_photos/江门停车场分布地图.html", encoding="gbk", mode="r") as f1:  # 打开CSV文件，f1作为文件流
        park_jiangmen  = "".join(f1.readlines())
    with open("html_photos/江门景点分布地图.html", encoding="gbk", mode="r") as f1:  # 打开CSV文件，f1作为文件流
        beauty_jiangmen = "".join(f1.readlines())
    with open("html_photos/江门酒店散点图.html", encoding="gbk", mode="r") as f1:  # 打开CSV文件，f1作为文件流
        hotel_jiangmen = "".join(f1.readlines())
    with open("html_photos/江门景点类型分区域的数量.html", encoding="gbk", mode="r") as f1:  # 打开CSV文件，f1作为文件流
        district_jiangmen = "".join(f1.readlines())
    with open("html_photos/江门区域景点、酒店、停车场、美食数量比较.html", encoding="utf8", mode="r") as f1:  # 打开CSV文件，f1作为文件流
        different_district_jiangmen = "".join(f1.readlines())
    with open("html_photos/江门部分景点差评LDA主题建模.html", encoding="utf8", mode="r") as f1:  # 打开CSV文件，f1作为文件流
        jianmo_jiangmen = "".join(f1.readlines())
    with open("html_photos/深圳公园类景点差评LDA主题建模.html", encoding="utf8", mode="r") as f1:  # 打开CSV文件，f1作为文件流
        jianmo_shenzhen = "".join(f1.readlines())
        return render_template("index.html",#后端代码渲染图到index.html前端页面
                               the_plot_all_1=park_all_1,  # 赋值给变量以渲染图表到前端页面
                               the_park_title=park_title,
                               # the_title=park_title_pao,  # 赋值给变量以渲染标题到前端页面
                               the_plot_all_2=park_all_2,
                               the_hotel_point_title=hotel_point_title,
                               the_hotel_point=hotel_point,
                               the_hotel_dot=hotel_dot,
                               #the_hotel_dot_title=hotel_dot_title,
                               the_beauty_dot=beauty_dot,
                               #the_beauty_dot_title=beauty_dot_title,
                               the_different_beauty=different_beauty,
                               the_park_food=park_food,
                               the_park_jiangmen=park_jiangmen,
                               the_beauty_jiangmen=beauty_jiangmen,
                               the_hotel_jiangmen=hotel_jiangmen,
                               the_district_jiangmen=district_jiangmen,
                               the_different_district_jiangmen=different_district_jiangmen,
                               the_jianmo_shenzhen=jianmo_shenzhen,
                               the_jianmo_jiangmen=jianmo_jiangmen
                               #the_list=list_data
                               # bar_data=bar.dump_options(),#.dump_options()函数渲染图到前端页面，由bar_data变量在前端页面进行接收
                    # line_data=line.dump_options()#.dump_options()函数渲染图到前端页面，由line_data变量在前端页面进行接收

                                )





#渲染患病率的图到前端页面
@app.route('/solution',methods=['POST'])
def problem_solution() -> 'html':
    with open( "html_photos/深圳各区各层次酒店数量条形图.html",encoding="gbk", mode="r") as log:#打开CSV文件，log作为文件流
       different_hotel_shenzhen ="".join(log.readlines())
    #     rows = csv.reader(log)  #利用csv.reader()函数读取log文件流数据并赋值给rows
    #     list_data=list(rows)    #利用list()函数使变量rows转化为嵌套列表，并且赋给list_data
    with open("html_photos/江门酒店类型数量.html", encoding="utf-8", mode="r") as f1:  #打开CSV文件，f1作为文件流
        different_hotel_jiangmen = "".join(f1.readlines()) #f1.readlines()读取f1的数据，并且转化为字符串
        # title = '二、完整的解决方案'    #网页标题
    with open("html_photos/江门三区四市.html", encoding="utf-8", mode="r") as f1:  # 打开CSV文件，f1作为文件流
        table_jiangmen = "".join(f1.readlines())
    with open("html_photos/深圳十区.html", encoding="utf-8", mode="r") as f1:  # 打开CSV文件，f1作为文件流
        table_shenzhen = "".join(f1.readlines())
    with open("html_photos/深圳各区景点分布 (3).html", encoding="utf-8", mode="r") as f1:  # 打开CSV文件，f1作为文件流
         jingdianfenbu_shenzhen = "".join(f1.readlines())
    with open ("html_photos/深圳分区域美食散点地图.html", encoding="utf-8", mode="r") as f1:  # 打开CSV文件，f1作为文件流
        beautys_shenzhen = "".join(f1.readlines())
        interactive_controls = ['完整的解决方案']#绑定前端页面的按钮以实现Python页面与前端页面交互
        return render_template('results2.html', #向/world_hbl返回result.html页面
                            #the_plot_all_1 = plot_all_1,#赋值给变量以渲染图表到前端页面
                            the_different_hotel_shenzhen=different_hotel_shenzhen,
                            the_different_hotel_jiangmen=different_hotel_jiangmen,
                            the_table_shenzhen=table_shenzhen,
                            the_table_jiangmen=table_jiangmen,
                            the_beautys_shenzhen=beautys_shenzhen,
                            the_jingdianfenbu_shenzhen=jingdianfenbu_shenzhen
                            #the_title = title,#赋值给变量以渲染标题到前端页面
                            # the_list = list_data,#渲染列表到前端
                            )
#渲染世界癌症死亡人数的图到前端页面
@app.route('/addition',methods=['POST'])
def world_death_person() -> 'html':
    # with open("data/cancer-death-rates.csv",encoding='ANSI') as log:#打开CSV文件，log作为文件流
    #     rows = csv.reader(log)  #利用csv.reader()函数读取log文件流数据并赋值给rows
    #     list_data=list(rows)    #利用list()函数使变量rows转化为嵌套列表，并且赋给list_data
    # with open("2008-2017十年世界癌症死亡人数.html", encoding="utf8", mode="r") as f1: #打开CSV文件，f1作为文件流
    #     plot_all_1 = "".join(f1.readlines())    #f1.readlines()读取f1的数据，并且转化为字符串
    #     interactive_controls =  ['可衡量的价值']    #绑定前端页面的按钮以实现Python页面与前端页面交互
    #     title = '2008-2017十年世界癌症死亡人数'   #网页标题
        return render_template('field.html',     #向/world_death_person返回result2.html页面
                           #  the_plot_all_1 = plot_all_1,#赋值给变量以渲染图表到前端页面
                           #  the_title = title,  #赋值给变量以渲染标题到前端页面
                           # the_list = list_data #渲染列表到前端
                           )



if __name__ == '__main__':
    app.run(debug=True)